<html>
 <head>
  <meta charset="UTF-8">
 </head>
 <body>
  <h1 data-lake-id="IPo1h" id="IPo1h"><span data-lake-id="uee548a16" id="uee548a16">典型回答</span></h1>
  <p data-lake-id="ua09fbcbd" id="ua09fbcbd"><br></p>
  <p data-lake-id="u4d829c0d" id="u4d829c0d"><span data-lake-id="u1544e07b" id="u1544e07b">Thread的sleep会让线程暂时释放CPU资源，然后进入到TIMED_WAITING状态，等到指定时间之后会再尝试获取CPU时间片。</span></p>
  <p data-lake-id="u38a4e9d5" id="u38a4e9d5"><span data-lake-id="u30988cb3" id="u30988cb3">​</span><br></p>
  <p data-lake-id="u2a5efbbd" id="u2a5efbbd"><span data-lake-id="u5ee69866" id="u5ee69866">sleep方法需要指定一个时间，表示sleep的毫秒数，但是有的时候我们会见到Thread.sleep(0)</span></p>
  <p data-lake-id="ud1757382" id="ud1757382"><span data-lake-id="udbb3dfd4" id="udbb3dfd4">​</span><br></p>
  <p data-lake-id="u70426fe1" id="u70426fe1"><strong><span data-lake-id="u0f0e9fda" id="u0f0e9fda">这种用法其实就是让当前线程释放一下CPU时间片，然后重新开始争抢。</span></strong></p>
  <p data-lake-id="ue7a124de" id="ue7a124de"><span data-lake-id="ub12c58e9" id="ub12c58e9">​</span><br></p>
  <p data-lake-id="u320f3351" id="u320f3351"><span data-lake-id="u44c27971" id="u44c27971">这种用法一般比较少见，很多时候在一些底层框架中，可以用来做线程调度，比如某个线程长时间占用CPU资源，这时候通过sleep(0)让线程主动释放CPU时间片，让其他线程可以进行一次公平的争抢。</span></p>
 </body>
</html>